package com.ttl.sbgl.loginback.service;

import com.ttl.sbgl.loginback.entity.QrToken;
import com.ttl.sbgl.loginback.entity.User;

public interface QrLoginService {

    /**
     * 生成二维码登录token
     * 
     * @return 包含token和二维码图片的Map
     */
    QrToken generateQrToken();

    /**
     * 检查二维码状态
     * 
     * @param token 二维码token
     * @return 二维码状态信息
     */
    QrToken checkQrTokenStatus(String token);

    /**
     * 确认二维码登录
     * 
     * @param token    二维码token
     * @param userName 用户名
     * @param password 密码
     * @return 是否确认成功
     */
    boolean confirmQrLogin(String token, String userName, String password);

    /**
     * 通过token获取用户信息
     * 
     * @param token 二维码token
     * @return 用户信息
     */
    User getUserByToken(String token);

    /**
     * 直接确认二维码登录（基于当前登录状态，无需密码验证）
     * 
     * @param token    二维码token
     * @param userName 用户名
     * @return 是否确认成功
     */
    boolean confirmQrLoginDirect(String token, String userName);

    /**
     * 清理过期的二维码token
     */
    void cleanExpiredTokens();
}